1. Field of the Invention
The present invention relates to a mobile communication terminal, and more particularly to a mobile communication terminal including a NAND flash memory and a method for booting the same.
2. Description of the Related Art
Generally, a mobile communication terminal adapts a flash memory as a storage unit for storing codes, fonts, and contents. Representative flash memories are a NOR flash memory and a NAND flash memory.
The flash memory may be read or written in page units, or may be deleted in block page units (i.e., in units of several pages). In the case of 32 MB flash memory, a single page is composed of 512 bytes+16 bytes (i.e., a spare area), a single block is composed of 32 pages, and an overall flash memory is composed of 2048 blocks.
Memories manufactured by Intel or Fujitsu Corporations, etc. are NOR types, each of which has fewer errors, excellent data stability, and a semipermanent life span, such that they have been used mainly as a data storage medium of mobile communication terminals.
However, the current mobile communication terminal includes a camera, generates/stores images, gains access to the Internet to download multimedia data such as ringtones, and stores or transmits the downloaded data, whereas the old mobile communication terminal has established a telephone call and an SMS (Short Message Service) message with a called party, such that there is a need for a mass storage memory to support the aforementioned functions. With the increasing amount of data being stored in the memory of the mobile communication terminal, a large number of NAND flash memories, developed for use in digital cameras requiring mass storage data, have been increasingly applied to either the 2.5 generation mobile communication terminal and the third generation mobile communication terminal. Microsoft Corporation, OS (Operating System) development company, has recently designed an improved OS capable of supporting the NAND flash memory of such mobile communication terminals. This development is making the NAND flash memory increasingly popular.
The NAND flash memory is superior to a NOR flash memory in price, storage capacity, and response time. In other words, NAND is cheaper, larger, and faster. However, it also has disadvantages in that it increases power consumption of a mobile communication terminal as compared to the NOR flash memory and requires an SRAM (Static Random Access Memory) or an SDRAM (Synchronous Dynamic Random Access Memory) to transmit data.
Internal configuration of the NAND flash memory is classified into a main area and a spare area. The main area stores used data or a code image, and the spare area stores its own ECC (Error Correction Code) and a separate ECC associated with the main area. In this case, the reason why the ECC is stored in the spare area is that a bit error of at least one or two bits may occur when reading/writing data from/on the NAND flash memory, whereas the NAND flash memory has advantages in that it is a low-priced and mass storage memory. If the bit error is determined to be a 1-bit error indicative of a correctable error, the mobile communication terminal corrects the 1-bit error such that it records the corrected data. If the bit error is determined to be more than a 2-bit error indicative of a uncorrectable error, the mobile communication terminal marks a bad block on the spare area, such that it prevents the bad block from being used in the future.
The bad block is classified into an initial bad block and a run-time bad block. The initial bad block is indicative of a block generated when a memory cell is broken during an initial fabrication time of the NAND flash memory. The run-time block is indicative of a bad block generated when the NAND flash memory is used.
If a bad block occurs in a specific position where code is stored when the mobile communication terminal stores not data but the code, unexpected problems are encountered. If a first value of the position where the code is stored is changed to a second value, it is impossible to predict operations of the mobile communication terminal at a position, where the first value has been changed to the second value, while the mobile communication terminal reads/executes the code.
Particularly, if a bad block occurs in an area where a boot code is stored, a mobile communication terminal including the NAND flash memory cannot be used even though it is sold in the market place. In more detail, the boot code stored in a storage unit and is executed when the mobile communication terminal is powered on, it receives image data (e.g., application code, font, binary content, etc.) from a computer (e.g., a personal computer), and stores the received image data in the NAND flash memory in such a way that it can download such image data from the computer. As a result, if the bad block occurs in the area where the boot code is stored, the mobile communication terminal including the NAND flash memory cannot be used. Typically, there is a need for the mobile communication terminal to include the aforementioned booting and download functions.
Additionally, the mobile communication terminal is classified into a single-chip (i.e., a modem chip) configuration and a dual-chip (i.e., a modem chip and an application chip) configuration. General booting operations at a time when the mobile communication terminal uses the NAND flash memory are as follows:
A controller for controlling the NAND flash memory exists in a processor (also called a control unit) of a mobile communication terminal. The NAND flash memory controller includes an internal buffer, a control register, and a boot H/W (Hardware) logic. If the mobile communication terminal is powered on, the NAND flash memory controller is operated. If the boot hardware logic contained in the NAND flash memory controller reads data of several kbytes from among data stored in the NAND flash memory's predetermined block currently storing boot data, and stores the read data in the internal buffer, the read boot data is operated. Generally, the block for storing the boot data is determined to be the 0-th block.
However, if a page number or block number indicative of an operation target is mistakenly transmitted (e.g., the page number or block number is determined to be ‘0’ and is then transmitted) so that the 0-th block is unexpectedly erased when the mobile communication terminal erases or records desired data on the NAND flash memory, the boot data must be rewritten to boot the mobile communication terminal. If a specific block (i.e., the 0-th block) for storing the booting information of the NAND flash memory is erased when the mobile communication terminal is booted, it is impossible to boot the mobile communication terminal. Furthermore, it is also impossible to boot the mobile communication terminal even when a run-time bad block occurs in the 0-th block during the operation time of the mobile communication terminal.